Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/8.0] [wasm] Endian fix for Webcil #92495

Merged
merged 3 commits into from
Oct 3, 2023

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Sep 22, 2023

Backport of #92274 to release/8.0

/cc @lambdageek @saitama951

Customer Impact

Customers using the browser-wasm workload on s390x and other big-endian platforms are able to produce working wasm webcil modules.

Testing

Manual testing

Risk

Low~~/Medium~~. There is additional code on non-s390x platforms in the webcil assembly, but it is all gated by an endianness check. In .NET Framework builds of the wasm builder MSBuild task there is a new dependency on the System.Memory.dll out of band assembly - so if we got the version dependencies wrong this may break the build for customers building browser-wasm projects using Visual Studio on Windows. (See #92495 (comment))

saitama951 and others added 3 commits September 22, 2023 18:52
'dotnet new blazorwasm' command failed on s390x and was throwing a not implemented exception

The issue was with with the WebCil writer and reader, specific endianness conversions relating to the webcil payload were not implemented for big endian machines.

We considered fixing the generic implementation, but there were only two structures in use: WebcilHeader and WebcilSectionHeader, so it was easier to handle them explicitly.
@ghost
Copy link

ghost commented Sep 22, 2023

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

Backport of #92274 to release/8.0

/cc @lambdageek @saitama951

Customer Impact

Testing

Risk

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

Author: github-actions[bot]
Assignees: -
Labels:

area-System.Net

Milestone: -

@lambdageek lambdageek added area-Build-mono Servicing-consider Issue for next servicing release review and removed area-System.Net labels Sep 22, 2023
@lambdageek lambdageek added this to the 8.0.0 milestone Sep 22, 2023
@lambdageek lambdageek added the arch-wasm WebAssembly architecture label Sep 22, 2023
@ghost
Copy link

ghost commented Sep 22, 2023

Tagging subscribers to 'arch-wasm': @lewing
See info in area-owners.md if you want to be subscribed.

Issue Details

Backport of #92274 to release/8.0

/cc @lambdageek @saitama951

Customer Impact

Customers using the browser-wasm workload on s390x and other big-endian platforms are able to produce working wasm webcil modules.

Testing

Manual testing

Risk

Low/Medium. There is additional code on non-s390x platforms in the webcil assembly, but it is all gated by an endianness check. In .NET Framework builds of the wasm builder MSBuild task there is a new dependency on the System.Memory.dll out of band assembly - so if we got the version dependencies wrong this may break the build for customers building browser-wasm projects using Visual Studio on Windows.

Author: github-actions[bot]
Assignees: -
Labels:

Servicing-consider, arch-wasm, area-Build-mono

Milestone: 8.0.0

@carlossanlop
Copy link
Member

@lambdageek is it intentional to target release/8.0, or were you intending to target release/8.0-rc2?

If the latter, then please edit the PR title and choose the target branch from the dropdown. Just please make sure to confirm that the commits are the ones you want, because sometimes additional unwanted commits get added.

@carlossanlop
Copy link
Member

I don't see an email requesting Tactics approval, and we're close to EOD so this will have to go to runtime/8.0 directly (RTM).

@lambdageek
Copy link
Member

@carlossanlop RTM is ok. I wasn't sure there was runway left for RC2.

@carlossanlop
Copy link
Member

@lambdageek don't forget to send an email requesting Tactics approval. I can't find one with this PR's title.

@rainersigwald
Copy link
Member

The System.Memory reference matches the one MSBuild guarantees (and we use ourselves) in supported-for-.NET-8.0 MSBuild/VS versions (17.7+), so I think that risk here is low.

@carlossanlop carlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Sep 29, 2023
@carlossanlop
Copy link
Member

Approved by Tactics but needs a code review sign-off from another area owner. @lewing @steveisok @radical? Who can volunteer as tribute?

@carlossanlop
Copy link
Member

carlossanlop commented Oct 3, 2023

@lambdageek @lewing @steveisok @radical can we get a sign-off please?

@carlossanlop carlossanlop merged commit 2e50c1e into release/8.0 Oct 3, 2023
183 of 190 checks passed
@carlossanlop carlossanlop deleted the backport/pr-92274-to-release/8.0 branch October 3, 2023 17:28
@ghost ghost locked as resolved and limited conversation to collaborators Nov 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-wasm WebAssembly architecture area-Build-mono Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants